// pages/home/home.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    level: 1,
    levelData: {},
    nextLevelData: {},
    answerList: ['', '', '', '']
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    const level = wx.getStorageSync('level') || 1
    this.setData({
      level
    }, () => {
      this.getLevelData(this.data.level)
      this.preload()
    })
  },

  preload() {
    if (this.data.level + 1 <= 444) {
      this.getLevelData(this.data.level + 1, true)
    }
  },

  getLevelData(level, isPreload) {
    wx.request({
      url: 'https://www.liulongbin.top:8081/api/idiom/' + level,
      success: (res) => {
        if (res.data.status !== 200) {
          return wx.showToast({
            title: '关卡加载失败！',
          })
        }

        if (isPreload) {
          this.setData({
            nextLevelData: res.data
          })
        } else {
          this.setData({
            levelData: res.data
          })
        }

      }
    })
  },

  choose(e) {
    const val = e.target.dataset.word
    const arr = this.data.answerList
    arr.some((item, i) => {
      if (item === '') {
        arr[i] = val
        this.setData({
          answerList: arr
        })
        return true
      }
    })

    // 判断用户是否回答正确了
    if (this.data.levelData.answer === this.data.answerList.join('')) {
      // 判断是否为最后一关
      if (this.data.level === 444) {
        wx.showToast({
          title: '恭喜通关！',
        })
        return
      }

      // 将关卡写入到 Storage 中
      wx.setStorageSync('level', this.data.level + 1)

      // 重置页面数据
      this.setData({
        answerList: ['', '', '', ''],
        level: this.data.level + 1,
        levelData: this.data.nextLevelData
      }, () => {
        // 重新获取数据
        this.preload()
      })
    }
  },

  remove(e) {
    const i = e.target.dataset.index
    console.log(i)
    const arr = this.data.answerList
    arr[i] = ''
    this.setData({
      answerList: arr
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})